home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 50
/
Aminet 50 (2002)(GTI - Schatztruhe)[!][Aug 2002].iso
/
Aminet
/
text
/
misc
/
wvware-mos.lha
/
bin
/
wvPS
< prev
next >
Wrap
Text File
|
2002-05-07
|
7KB
|
316 lines
#!/bin/sh
wv_script_name="$0"
which latex >/dev/null 2>&1
if [ ${?} -ne "0" ]; then
echo "Could not find required program 'latex'"
exit 1
fi
which dvips >/dev/null 2>&1
if [ ${?} -ne "0" ]; then
echo "Could not find required program 'dvips'"
exit 1
fi
prefix=/gg
exec_prefix=
datadir=
t_dir=.
wv_opts=
i_file=
o_file=
print_help=no
while test $# -gt 0; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case $1 in
--prefix=*)
prefix=$optarg
;;
--exec-prefix=*)
exec_prefix=$optarg
;;
--datadir=*)
datadir=$optarg
;;
--targetdir=*)
t_dir=$optarg
;;
--charset=* | --password=*)
wv_opts="$wv_opts $1"
;;
-v | --version)
echo 0.7.2
exit 0
;;
-\? | -h | --help)
cat << EOF
Usage: $wv_script_name [OPTIONS] <input-file> <output-file>
Options:
--prefix=<DIR> Set prefix (default is /gg)
--exec-prefix=<DIR> Set exec_prefix (default is ${prefix})
--datadir=<DIR> Set datadir (default is ${prefix}/share)
--targetdir=<DIR> Target directory (target is <DIR>/<output-file>)
--charset=<charset> Specify an iconv charset encoding
--password=<password> Specify password for encrypted
-v, --version Print version info and exit
Authors:
Dom Lachowicz (dominicl@seas.upenn.edu)
Caolan McNamara (original author)
Visit http://www.wvware.com/
EOF
exit 0
;;
-?*)
echo "Option '$1' not recognized."
exit 1
;;
*)
if test "x$i_file" = "x"; then
i_file=$1
elif test "x$o_file" = "x"; then
o_file=$1
else
echo "Option '$1' not recognized."
exit 1
fi
;;
esac
shift
done
if test "x$i_file" = "x-"; then
echo "error: cannot specify '-' as input"
exit 1
fi
if test -r "$i_file"; then
okay=yes
else
echo "error: '$i_file' unreadable"
exit 1
fi
if test "x$o_file" = "x"; then
echo "Usage: $1 [OPTIONS] <input-file> <output-file>"
exit 1
fi
if test "x$i_file" = "x-"; then
echo "error: cannot specify '-' as output"
exit 1
fi
name=`basename "$o_file"`
if test "x$o_file" != "x$name"; then
echo "error: use '--targetdir' for writing in another directory"
exit 1
fi
name=`basename "$o_file" | sed "s/ /_/g"`
name=`echo $name | sed 's/\.[^\.]*$//'`
if test "x$exec_prefix" = "x"; then
exec_prefix=${prefix}
fi
wv_exec="$exec_prefix/bin/wvWare"
if test -x "$wv_exec"; then
okay=yes
else
wv_version=`wvWare -v 2>&1 | cut -f 2 -d " "`
if test "x$wv_version" = "x0.7.2"; then
wv_exec="wvWare"
else
echo "error: no executable at '$wv_exec' or in path"
exit 1
fi
fi
if test "x$datadir" = "x"; then
datadir=${prefix}/share
fi
xmlcfg="$datadir/wv/wvLaTeX.xml"
if test -r "$xmlcfg"; then
okay=yes
else
echo "error: '$xmlcfg' unreadable"
exit 1
fi
if test -d "$t_dir"; then
if test -w "$t_dir"; then
okay=yes
else
echo "error: '$t_dir' is not writable"
exit 1
fi
else
echo "error: '$t_dir' is not a directory"
exit 1
fi
# auto_wmf=`"$wv_exec" --auto-eps=wmf`
# auto_emf=`"$wv_exec" --auto-eps=emf`
# auto_png=`"$wv_exec" --auto-eps=png`
# auto_jpg=`"$wv_exec" --auto-eps=jpg`
# auto_pict=`"$wv_exec" --auto-eps=pict`
im_chk=`convert --help 2>&1 | grep -v ImageMagick`
if test "x$im_chk" = "x"; then
im_chk="no"
s_img=""
else
im_chk="yes"
# if we have ImageMagick's convert, then use that to convert PNG, JPEG & PICT
# to EPS. Therefore, need to suppress wvWare's desire to convert these:
s_img="png,jpg,pict"
fi
"$wv_exec" $wv_opts -x "$xmlcfg" -d "$t_dir" -b "$name" "$i_file" -s "$s_img" > "$t_dir"/"$name".tex
cd "$t_dir"
echo
echo 'Current directory: '`pwd`
# First, convert any images
i_okay=yes
for i_name in "$name"*.wmf; do
if test -r "$i_name"; then
e_name=`echo "$i_name" | sed 's/wmf$/eps/'`
if test -r "$e_name"; then
echo '"'$e_name'"' exists - skipping...
else
if test "$im_chk" = "yes"; then
convert "$i_name" "$e_name"
if test -r "$e_name"; then
echo created '"'$e_name'"'
else
echo '"'$i_name'"': conversion failed
i_okay=no
fi
else
echo unable to convert '"'$i_name'"' '(no converter)'
i_okay=no
fi
fi
fi
done
for i_name in "$name"*.emf; do
if test -r "$i_name"; then
e_name=`echo "$i_name" | sed 's/emf$/eps/'`
if test -r "$e_name"; then
echo '"'$e_name'"' exists - skipping...
else
echo unable to convert '"'$i_name'"' '(no converter)'
i_okay=no
fi
fi
done
for i_name in "$name"*.png; do
if test -r "$i_name"; then
e_name=`echo "$i_name" | sed 's/png$/eps/'`
if test -r "$e_name"; then
echo '"'$e_name'"' exists - skipping...
else
if test "$im_chk" = "yes"; then
convert "$i_name" "$e_name"
if test -r "$e_name"; then
echo created '"'$e_name'"'
else
echo '"'$i_name'"': conversion failed
i_okay=no
fi
else
echo unable to convert '"'$i_name'"' '(no converter)'
i_okay=no
fi
fi
fi
done
for i_name in "$name"*.jpg; do
if test -r "$i_name"; then
e_name=`echo "$i_name" | sed 's/jpg$/eps/'`
if test -r "$e_name"; then
echo '"'$e_name'"' exists - skipping...
else
if test "$im_chk" = "yes"; then
convert "$i_name" "$e_name"
if test -r "$e_name"; then
echo created '"'$e_name'"'
else
echo '"'$i_name'"': conversion failed
i_okay=no
fi
else
echo unable to convert '"'$i_name'"' '(no converter)'
i_okay=no
fi
fi
fi
done
for i_name in "$name"*.pict; do
if test -r "$i_name"; then
e_name=`echo "$i_name" | sed 's/pict$/eps/'`
if test -r "$e_name"; then
echo '"'$e_name'"' exists - skipping...
else
if test "$im_chk" = "yes"; then
convert "$i_name" "$e_name"
if test -r "$e_name"; then
echo created '"'$e_name'"'
else
echo '"'$i_name'"': conversion failed
i_okay=no
fi
else
echo unable to convert '"'$i_name'"' '(no converter)'
i_okay=no
fi
fi
fi
done
if test "$i_okay" = "no"; then
echo 'WARNING: Failed to convert one or more images to EPS'
fi
# "$name".tex is the LaTeX file
# use latex to convert this to DVI
latex --interaction=batchmode "$name".tex >/dev/null 2>&1
# check latex exit status and comment or clean up
if [ ${?} -ne "0" ]; then
echo "Some problem running latex."
echo "Check for Errors in $name.log"
echo "Continuing..."
else
rm -f "$name".aux "$name".log "$name".tex
fi
# latex replaces the "tex" extension with a "dvi" extension
if [ ! -f "$name".dvi ]; then
echo "Conversion into dvi failed"
exit 1
fi
dvips -o "$o_file" "$name".dvi >/dev/null 2>&1
if [ ${?} -ne "0" ]; then
echo "Could not convert into Postscript"
exit 1
fi
#clean up
rm -f "$name".dvi